算法提高 不大的数
目前已AC者
　　刘啸宇
　　章放
问题描述
　　在当今的大数据时代，超大数的高精度计算已经成为众多领域的热门研究之一。现在T校也想在此领域有所造诣已造福于全社会，然而由于时间有限，所以短时间内难以找出大数计算的通用算法，于是学校找到了同学中的“神霸”——你来帮忙，并仅要求你能在数并不算大的时候给出结果。又出于某种特殊需要，也并不要求你给出数的全部结果，而只是要求结果的前10位（注意不是后10位），并考虑到2的幂次的特殊性和典型性，所以要你计算的数均为2的幂次。
输入格式
　　一个自然数n。
输出格式
　　2的n次幂的前10位。
样例1 输入
　　60
样例1 输出
　　1152921504
样例2 输入
　　60000
样例2 输出
　　6305794870
数据规模和约定
　　0<=n<=10000000
注释
　　=。=

#include <iostream>
using namespace std;
int main() {
    int n;
    cin >> n;
    double t = 1.0;
    for(int i = 1; i <= n; i++) {
        t = t * 2;
        if(i >= 34 && i % 10 == 0) {
            t = t / 1000;
        }
        if(i % 971 == 0) {
            t = t / 10;
        }
    }
    long long int temp = t;
    int sum = 0;
    while(temp) {
        temp = temp / 10;
        sum++;
    }
    while(sum > 10) {
        t = t / 10;
        sum--;
    }
    long long int d = t;
    printf("%lld", d);
    return 0;
}